完成COM组件的创建以后,在Word Visual Basic编辑器中引用它。[大谦MATLAB,dqmatlab点com]
在Word的Visual Basic编辑器中,在“工具”菜单中单击“引用…”选项,打开“引用”对话框,如图3-1所示。在列表框中选择“magicsquare 1.0 Type Library”选项,单击“确定”按钮。完成对组件的引用。
图3-1 “引用”对话框
然后创建用户界面。现在添加一系列控件到空白的窗体上,完成对话框的创建。添加控件以后的窗体如图3-2所示。各控件的属性设置如表3-1所示。
图3-2 界面设计
窗体和控件属性设置完毕以后,添加对象代码。这些代码将引用表3-1中的控件名和属性值。如果要对任何控件或属性给定不同的名称或值,则需要通过改变代码来体现这些改变。
表3-1 控件属性设置
| 控件类型 | 控件名称 | 属 性 |
|---|---|---|
| TextBox | txtSize | |
| CommandButton | cmdCreate | Caption = 确 定 |
| TextBox | txtMagic | ScrollBars = Both Multiline = True |
下面的代码利用前面创建的magicsquare组件生成指定大小的魔方矩阵,并显示到窗体中的txtMagic控件中。
code.word vba
Private intSize As Integer '保存以前矩阵的大小
Private Sub CommandButton1_Click()
'本函数在"创建"按钮被按下时被调用
'调用magicsquare方法,并显示魔方
Dim myMagic As magicsquare.msq 'msq类的实例
Set myMagic = New magicsquare.msq
Dim y As Variant
intSize = CInt(txtSize.Text)
If intSize <= 0 Or myMagic Is Nothing Then Exit Sub
On Error GoTo Handle_Error
myMagic.magicsquare 1, y, intSize
ShowMatrix y
Exit Sub
Handle_Error:
MsgBox(Err.Description)
End Sub
Private Sub ShowMatrix(y As Variant)
'本函数用y的值填充txtMagic文本框
'假设y包含一个二维数组
Dim lngI As Long
Dim lngJ As Long
Dim strRow As String
On Error GoTo Handle_Error
For lngI = 1 To intSize
For lngJ = 1 To intSize
strRow = strRow & CStr(y(lngI, lngJ)) & Chr(9)
Next lngJ
strRow = strRow & Chr(13) & Chr(10)
Next lngI
txtMagic = strRow
Exit Sub
Handle_Error:
MsgBox(Err.Description)
End Sub
运行程序,在输入框中输入一个正整数并单击“确定”按钮,显示一个指定大小的魔方。效果如图3-3所示。
图3-3 运行结果